# -*- coding:utf-8 -*-
"""
describe：登录页面
Author：tang
Email：tangllyx@163.com
Time: 2023/4/17
Software: PyCharm
"""
import allure

from playwright.sync_api import Page, expect, Playwright
import re

class BasePage(Page):
    # 元素定位器
    __login_succes = "项目首页"
    __password = "#password"
    __verify_code = "#verify_code"
    __login_button = 'a[name="sbtbutton"]'
    __button_logout = 'a[title="退出"]'

    def __int__(self,page:Page):
        self.page = page
    @allure.step("选择标段")
    def select_bd(self,value):
        self.page.locator("div").filter(has_text=re.compile(r"请选择标段$")).get_by_role("textbox").click()
        self.page.locator("div").filter(has_text=re.compile(r"请选择标段$")).get_by_role("textbox").fill(value)
        self.page.locator("div").filter(has_text=re.compile(r"请选择标段$")).get_by_role("textbox").press("Enter")

    @allure.step("选择合同")
    def select_ht(page:Page, value):
        page.locator("div").filter(has_text=re.compile(r"^请选择合同名称$")).get_by_role("textbox").fill("大庄水厂、智慧谷工业园、龙港新区 应急供水工程（智慧谷工业园标段）（智慧谷工业园标段）（智慧谷工业园标段）")
        page.locator("div").filter(has_text=re.compile(r"^请选择合同名称$")).get_by_role("textbox").press("Enter")
        if page.locator("span").filter(has_text="大庄水厂、智慧谷工业园、龙港新区 应急供水工程（智慧谷工业园标段）（智慧谷工业园标段）（智慧谷工业园标段）").is_visible():
            page.locator("span").filter(
                has_text="大庄水厂、智慧谷工业园、龙港新区 应急供水工程（智慧谷工业园标段）（智慧谷工业园标段）（智慧谷工业园标段）").click()


    @allure.step("输入密码")
    def fill_password(self, value):
        self._fill(self.__password, value)

    @allure.step("输入验证码")
    def fill_verify_code(self, value):
        self._fill(self.__verify_code, value)

    @allure.step("点击登录按钮")
    def click_login_button(self):
        self._click(self.__login_button)

    @allure.step("点击安全退出按钮")
    def click_button_logout(self):
        self._click(self.__button_logout)

    def browser_operation(self, reload=True, forward=False, back=False):
        self._browser_operation(reload=reload, forward=forward, back=back)
